1. Statement of the Technical Field
The present invention relates to the field of component-based computing and more particularly to automated application construction by configuring a discrete set of application components.
2. Description of the Related Art
Computer software applications justify the globally ravenous appetite for expensive computing technology. As the utility of computer software becomes more apparent to the least technically inclined, computing technology becomes more of a natural element of life without which productivity seemingly would grind to a halt much as would be the case without the benefit of telecommunications. Along with enhanced productivity associated with computer software, so too has the demand for more end-user specific applications increased. In this regard, no longer will it suffice that a single embodiment of a computer program solves a general problem. Rather, end-users have come to expect more particular configurations for computer software to address unpredictable end-user problem spaces.
Decades ago, most end-user specific problems had been addressed through customizable spreadsheet, word processing and database applications. Specifically, end-users could customize each of these core office productivity applications using a strategic mix of macros, preformatted document styles and computing formulas embedded within documents. Interestingly, it is well-known that even today, the world's leading personal computer manufacturer manages the complete roll-out of each new product within a single spreadsheet littered with relative references to cells within the spreadsheet. Nevertheless, the utility of a customized “application” formed through the manipulation and configuration of a conventional office productivity suite cannot scale to the enterprise.
The distribution of enterprise-wide computing applications has rested largely upon the shoulders of distributable computing components which once retrieved from a network code base can execute within the virtual environment of the conventional content browsing client. More particularly, applications can be formed through the unique arrangement of discrete application components which can be distributed on demand to client computing devices scattered about the enterprise. To support the on demand distribution of the discrete application components, application servers have formed the backbone of the distributed application and function to manage the arrangement and distribution of application components to form a highly customized enterprise application.
Despite the flexibility of the modern application server, however, the configuration of an enterprise application through the combination of discrete application components can involve a requisite level of computing expertise not prevalent throughout each enterprise. Consequently, the customization of an enterprise application can involve the expenditure of vast sums in order to support the development and maintenance of a customized enterprise computing application. The expenditure of vast sums to support the development and maintenance of a customized enterprise computing application, however, represents a substantial departure from the notion of ages gone by that an application can be customized by an unsophisticated end user through the generation of a document template as had been the case in the venerable spreadsheet. Worse yet, in today's development environment, often those who have the deepest knowledge of the business goals of an application specification, lack the most basic programming skills necessary to customize an enterprise computing application.